When a machine such as a computer system is turned on, the machine and the configurable devices in the machine are configured. The manners in which these various routines are carried out depend on the particular configuration of the computer system or the various configurable devices in the computer system. For instance, a configuration setup dictates whether the computer system will perform an exhaustive memory test or a brief memory test prior to boot up (computer system is turned on and is in ready stage). In another example, the configuration setup for the computer system dictates whether to boot the computer system up from a hard drive, a floppy, or a CD ROM installed in the computer system.
Generally, a user's ability to configure the computer system or any hardware devices (video cards, network cards, etc.) present in the computer system is restricted to the preboot stage. As more and more hardware for computer systems are being developed with configuration options presented to the user, and the flexibility as to when configuration can occur, hardware manufacturers have been creating two different drivers (e.g., routines) that are installed in the particular hardware that enable the user to configure the hardware when the computer system is in the preboot stage as well as in the boot up stage. One driver is created to enable configuration during preboot stage; and another driver is created to enable configuration during boot up stage. However, a computer system is often equipped with a particular operating system (e.g., Macintosh OS, DOS, Windows, Windows NT, and UNIX) that runs the computer system during post-boot operation, also referred to as runtime. The runtime stage refers to the stage when the computer system's operating system has control after the boot up stage and runs the computer system. The runtime stage can be also referred to as the post-boot stage. To enable configuration of any device in the boot up stage, the additional second drivers must be written to communicate with the particular operating system. The existence of many different operating systems forces the manufacturers to develop several different drivers to accommodate these different operating systems. The making of the devices are thus unnecessarily expensive and complex.
Additionally, a conventional configuration infrastructure uses data exported to the devices to set up the devices. The set up is actuated when the computer system is reset or reboot after which the newly set configurations will take place. Generally, the configuration data is saved into the NVRAM which will act as a proxy to effectuate the changes such that when the system is reset, the drivers dedicated to control the particular hardware will go to that NVRAM to gather the necessary configuration information to enact the changes to the devices. Current configuration infrastructure lacks the ability to allow users to dynamically interact with configurable devices or hardware other than through some nonvolatile storage device that stores the configuration data.